package cc.sunni.service.impl;

import cc.sunni.entity.Student;
import cc.sunni.service.AbsCheckStudent;

import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;

/**
 * @author jiangli
 * @since 2021/6/24 14:10
 * 学生编号要求唯一，不能为空，不能超过20个字符，且在数据库中不能已经存在
 */
public class StNoCheck extends AbsCheckStudent {
    @Override
    public List<Student> checkStudent(List<Student> studentList) {
        //获取学生编号不符合条件的学生对象
        List<Student> stNoIsNotOk = studentList.stream().filter(stu -> {
            String stNo = stu.getStNo();
            return Objects.isNull(stNo) || "".equals(stNo) || stNo.length() > 20;
        }).collect(Collectors.toList());
        //TODO 做数据库中的惟一性的校验等
        System.out.println("编号校验不通过的数据有：" + stNoIsNotOk.toString());
        //在原有的集合中移除不符合学生编号的对象集合
        studentList.removeAll(stNoIsNotOk);
        System.out.println("通过了全部的校验的数据有：" + studentList);
        //TODO 全部通过校验了，保存数据到数据库 save(studentList);
        return studentList;
    }
}
